/*
 *Copyright (c) 2024 Black Sesame Technologies
 *
 *Licensed under the Apache License, Version 2.0 (the ""License"");
 *you may not use this file except in compliance with the License.
 *You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 *Unless required by applicable law or agreed to in writing, software
 *distributed under the License is distributed on an ""AS IS"" BASIS,
 *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *See the License for the specific language governing permissions and
 *limitations under the License.
*/
#ifndef __HSCG_FIRMWARE_H__
#define __HSCG_FIRMWARE_H__
#include "switch0_can_gateway_ipc_server.h"  // IPC server header
#include "switch0_canoe_ipc_client.h"  // IPC client header
#include "sq_buffer/sq_buffer.h"  // SQ buffer header

// External declarations for CAN server, virtual CAN client, and CAN2X SQ buffer
extern switch0_can_gateway_ipc_server_t *can_s_server;
extern SQ_Buffer *can2x_sq_buffer;

// Number of SQ buffers, calculated as total CAN2X data buffer size divided by size of each CAN2X data element
// CAN2X_DATA_BUFFER_TOTAL_SIZE/sizeof(CAN2X_DATA)
// In this case, we are using a fixed value of 15
#define SQ_BUFFER_COUNT 15

#endif /* __HSCG_FIRMWARE_H__ */